// 本质是出现两次的数字会抵消，留下的一定是只出现一次的
const singleNumber = function (nums) {
    let res = nums[0]
    for (let i = 1; i < nums.length; i++)
        res = res ^ nums[i]
        console.log(res);
    return res
}
console.log(singleNumber([4,1,2,1,2]))

/*
异或运算三个性质
Array.prototype.unshift.任何数与0 -> 任何数
2.相同数与相同数 -> 0
3.满足交换律和结合率
故，将nums中的所有数做异或运算，根据1,2,3 -> 两者相同可变成0，最后 0 ^ 一次的数 = 一次的数
100
001

101 =5
010

111 = 7
001

110 = 6
010

100 = 4

 */
